#!/bin/bash


## 私钥
export PRIVATEKEY_BITS=${PRIVATEKEY_BITS:-2048}    #--- 私钥长度


## openss.cnf变量
# 证书
export CERT_BITS=${CERT_BITS:-2048}          #--- 证书长度
export CERT_DAYS=${CERT_DAYS:-365}           #--- 证书有效期

# [ req_distinguished_name ]
# 用户信息
export countryName_default="CN"
export stateOrProvinceName_default="GuangDong"
export localityName_default="GuangZhou"
export organizationName_default0="ZZXia"
export organizationalUnitName_default="IT"
export emailAddress_default="admin@test.lan"
#
export commonName_default="test.lan"

# [ alt_names ]
# 新增 alt_names,注意等号前后的空格，DNS.x 的数量可以自己加（x可以是任意字符，只要不重复即可），common name的值也必须添加到这里，其他IP、email同DNS一样设置
# 至少要有一行，不能为空，上面的通用名commonName_default的值也要填写在这里
#
# 例如：
#   DNS.1 = test.lan
#   DNS.2 = *.test.lan
#   DNS.3 = docker-repo
#   IP.1 = 192.168.7.1
#   IP.2 = 192.168.7.2
#   email.1 = copy         #--- 代表从用户信息复制
#   email.2 = xx@yy.zz
#
export alt_names=$(echo "
DNS.1 = test.lan
DNS.2 = *.test.lan
DNS.3 = docker-repo
")

# [ v3_req ]
export CERT_USE_FOR='4'      #--- 数值参考【# CERT_USE_FOR 参数参考：】



# CERT_USE_FOR 参数参考：
# 
# (1|ca) CA
#  密钥用法：认可签名，证书签名，CRL签名
#  keyUsage = nonRepudiation,keyCertSign,cRLSign
# 
# (2|code) 代码
#  密钥用法：数字签名
#  增强密钥用法：代码签名
#  keyUsage = digitalSignature
#  extendedKeyUsage = codeSigning
# 
# (3|computer) 计算机
#  密钥用法：数字签名，密钥协商
#  增强密钥用法：服务器验证，客户端验证
#  keyUsage = digitalSignature,keyAgreement
#  extendedKeyUsage = serverAuth,clientAuth
# 
# (4|webserver) WEB服务器
#  密钥用法：数字签名，认可签名，密钥加密，数据加密，密钥协商
#  增强密钥用法：服务器验证
#  keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment,keyAgreement
#  extendedKeyUsage = serverAuth
# 
# (5|client) 客户端
#  密钥用法：数字签名，认可签名，密钥加密，数据加密
#  增强密钥用法：客户端验证
#  keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
#  extendedKeyUsage = clientAuth
# 
# (6|trustlist) 信任列表
#  密钥用法：数字签名
#  增强密钥用法：信任列表签名
#  keyUsage = digitalSignature
#  extendedKeyUsage = msCTLSign
# 
# (7|timestamp) 时间戳
#  密钥用法：数字签名，认可签名，密钥加密，数据加密
#  增强密钥用法：时间戳
#  keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
#  extendedKeyUsage = timeStamping
# 
# (8|ipsec) IPSEC
#  密钥用法：数字签名，认可签名，密钥加密，数据加密
#  增强密钥用法：IP安全IKE中级
#  keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
#  extendedKeyUsage = 1.3.6.1.5.5.8.2.2
# 
# (9|email) Email
#  密钥用法：数字签名，认可签名，密钥加密，数据加密
#  增强密钥用法：安全电子邮件
#  keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
#  extendedKeyUsage = emailProtection
# 
# (10|smartcard) 智能卡登陆
#  密钥用法：数字签名，密钥协商，仅仅解密
#  增强密钥用法：密钥恢复，加密文件系统，智能卡登陆
#  keyUsage = digitalSignature,keyAgreement,decipherOnly
#  extendedKeyUsage = 1.3.6.1.4.1.311.10.3.11,msEFS,1.3.6.1.4.1.311.20.2.2
#
# 以上为一般用法，可以根据需要进行组合，秘钥用法请参考【key_usage.md】，若需增加秘钥功能选项，请修改【function.sh】



